package com.xnyzc.lhy.mis.service.cms.driver;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.mis.entity.cms.driver.DriverUserInfo;
import com.xnyzc.lhy.mis.entity.driver.wallet.OaDBandSupplierSeparateAccount;
import com.xnyzc.lhy.mis.entity.result.cms.driver.CmsOaDriverWalletListRes;
import com.xnyzc.lhy.mis.entity.result.user.DriverUserResult;
import com.xnyzc.lhy.mis.entity.user.OaDUserInfo;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import java.util.List;

/**
 * 司机钱包管理接口
 *
 * @author conglijuan
 * @date 2019-08-21 19:36
 */
public interface CmsDriverWalletManageService {

    /**
     * 获取司机钱包列表
     *
     * @param cmsOaDriverWalletListRes
     * @return
     */
    Rv getCmsDriverWalletList(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    /**
     * 获取该司机的对应的绑定模式规则
     *
     * @param cmsOaDriverWalletListRes
     * @return
     */
    Rv getDriverBandSupplierSeparateAccountList(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    /**
     *  司机绑定对应供应商的分账规则
     */
    Rv driverBandSupplierSeparateAccount(List<OaDBandSupplierSeparateAccount> list);

    /**
     * 导出司机信息
     * @return
     */
    Rv exportGetWallet(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    /**
     * 导出详情页面中表格信息
     * @return
     */
    Rv exportGetWalletDetail(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    /**
     * 详情页面中表格信息
     * @return
     */
    Rv getCmsDriverWalletDetailList(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    String saveExcelFileContent(Long sysUserId, String tag, String clientId,MultipartFile file);

    SXSSFWorkbook exportDriverAccountDetail(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    Rv updateDriverAccountByDriver(OaDUserInfo oaDUserInfo, long sysUserId);

    Rv getSettlementAccountData(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    SXSSFWorkbook exportDriverSettlementAccountData(CmsOaDriverWalletListRes cmsOaDriverWalletListRes);

    Rv uploadDriverAccountExcel(long sysUserId, BigDecimal ttlamt, MultipartFile file,Long batchNo);

    Rv selectTransferAmountByBatchId(Long batchNo, Integer current, Integer pageSize);

    Rv getTransferHistoryRecordList();
}
